package cn.lmxdev.ptms.service;

import cn.lmxdev.ptms.bean.table.TUser;
import org.springframework.security.core.userdetails.UserDetailsService;

import java.util.List;

public interface IUserServlet extends UserDetailsService {
    TUser get(Long id);

    TUser getByAccount(String account);

    long add(TUser user);

    void register(Long departmentId, Long specialtyId, TUser user);

    void remove(Long id);

    void edit(TUser user);

    void editMyInfo(TUser user);

    long count(TUser user);

    List<TUser> list(Long limit, Long page, TUser user);

    long countByTeacher(TUser user);

    List<TUser> listByTeacher(Long limit, Long page, TUser user);

    long departmentHeadCountByTeacher(Long departmentHeadId, TUser user);

    List<TUser> departmentHeadListByTeacher(Long departmentHeadId, Long limit, Long page, TUser user);

    long specialtyHeadCountByTeacher(Long specialtyHeadId, TUser user);

    List<TUser> specialtyHeadListByTeacher(Long specialtyHeadId, Long limit, Long page, TUser user);

    long departmentHeadCountByStudent(Long departmentHeadId, TUser user);

    List<TUser> departmentHeadListByStudent(Long departmentHeadId, Long limit, Long page, TUser user);

    long specialtyHeadCountByStudent(Long specialtyHeadId, TUser user);

    List<TUser> specialtyHeadListByStudent(Long specialtyHeadId, Long limit, Long page, TUser user);

    long adviserCountByStudent(Long adviserId, TUser user);

    List<TUser> adviserListByStudent(Long adviserId, Long limit, Long page, TUser user);
}
